People are increasingly interacting with computers and other electronic devices in new and interesting ways. One such interactive approach involves making a detectable motion with respect to a device, which can be detected using a camera or other such element. While image recognition can be used with existing cameras to determine various types of motion, the amount of processing needed to analyze full color, high resolution images is generally very high. This can be particularly problematic for portable devices that might have limited processing capability and/or limited battery life, which can be significantly drained by intensive image processing. Some devices utilize basic gesture detectors, but these detectors are typically very limited in capacity and are only able to detect simple motions such as up-and-down, right-or-left, and in-and-out. These detectors are not able to handle more complex gestures, such as holding up a certain number of fingers or pinching two fingers together.
In addition, there are a variety of techniques used to try and identify and track the motion of a user's hand to support gesture recognition. For example, techniques to separate a user's hand from background information in an image may utilize infra-red (IR) based approaches and/or time-of-flight based three-dimensional cameras. However, these techniques require active power emission and/or are computationally intensive, often making them non-desirable in portable devices. Other techniques include color segmentation that utilizes a set color spectrum to attempt to identify and distinguish a user's hand from background information. However, this technique has not been successful because if the selected color spectrum is too broad, it will not differentiate the hand from background images. In contrast, if the color spectrum is too narrow it may not identify the user's hand. In addition, even if it does initially detect the user's hand, the detection may fail under varying light conditions (e.g., indoor, outdoor, different lights).
Further, cameras in many portable devices such as cell phones often have what is referred to as a “rolling shutter” effect. Each pixel of the camera sensor accumulates charge until it is read, with each pixel being read in sequence. Because the pixels provide information captured and read at different times, as well as the length of the charge times, such cameras provide poor results in the presence of motion. A motion such as waiving a hand or moving one or more fingers will generally appear as a blur in the captured image, such that the actual motion and object cannot accurately be determined.